package com.sky.context;


/**
 * BaseContext类提供了一种在多线程环境下存储和获取当前线程关联ID的能力。
 * 它使用了ThreadLocal变量来实现线程之间的隔离。
 */
public class BaseContext {

    // ThreadLocal变量，用于存储线程关联的ID
    public static ThreadLocal<Long> threadLocal = new ThreadLocal<>();

    /**
     * 设置当前线程的ID。
     * @param id 要设置的线程关联ID。
     */
    public static void setCurrentId(Long id) {
        threadLocal.set(id);
    }

    /**
     * 获取当前线程的ID。
     * @return 线程关联的ID，如果未设置则返回null。
     */
    public static Long getCurrentId() {
        return threadLocal.get();
    }

    /**
     * 移除当前线程的ID设置。
     */
    public static void removeCurrentId() {
        threadLocal.remove();
    }

}
